// 国际化的初始化
import { createI18n } from "vue-i18n"
import mZhLocale from './lang/zh'
import mEnLocale from './lang/en'
// 结合本地定义语言
import store from "@/store"

// 定义语言 数据源
const messages = {
  en: {
    msg: {
      ...mEnLocale
    }
  },
  zh: {
    msg: {
      ...mZhLocale
    } 
  }
}

//获取vuex中的语言
function getLanguage() {
  return store && store.getters && store.getters.language
}

// 实例化
const i18n = createI18n({
  // 使用 Composition API 模式，则需要将其设置为false 
  legacy: false,
  // 全局注入 $t 函数 是开启全局的t函数，比如我们声明messages字段的时候，定义了key为msg，我们在使用的时候就用$t('msg.xxx')来进行解析。
  globalInjection: true,
  //获取当前语种 在进行中英文切换时直接切换locale的value。
  locale: getLanguage(),
  //这里message等同于是 message:message，字段名不可以换，因为这是i18n自带的字段名 
  messages,
})


//  进行抛出
export default i18n